#include "TileWorldInfo.h"
#include "Exception.h"
#include "Logger.h"

using namespace game_engine::data_format;
using namespace game_engine::utils;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

TileWorldInfo::TileWorldInfo(void)
    : infoFilename(), textureFilename()
{
}

TileWorldInfo::~TileWorldInfo(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////

void TileWorldInfo::parse(XmlDocument &doc)
{
    // Get tile world information
    try 
    {
        infoFilename = XmlUtils::getString(
            "level_parameters.tile_world.tile_info_file", 
            doc);
        textureFilename = XmlUtils::getString(
            "level_parameters.tile_world.tile_texture_file", doc);
    } catch (exception &e)
    {
        string msg = "Parsing tile world information failed. ";
        msg.append(e.what());
        Logger::ERR(GAMEENGINE_LOG, msg);
        throw ParserException(msg);
    }
}

///////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////

const string& TileWorldInfo::getInfoFilename(void) const
{
    return infoFilename;
}

const string& TileWorldInfo::getTextureFilename(void) const
{
    return textureFilename;
}
